#ifndef VOICE_RECOGNITION_H
#define VOICE_RECOGNITION_H

#include <stdbool.h>
#include <stdint.h>
#include "config.h"

// 语音识别状态
typedef enum
{
    VOICE_IDLE,
    VOICE_LISTENING,
    VOICE_WAKE_WORD_DETECTED,
    VOICE_RECOGNIZING,
    VOICE_RECOGNIZED,
    VOICE_ERROR
} voice_recognition_state_t;

// 函数声明

/**
 * 初始化语音识别模块
 * @return 0成功，-1失败
 */
int voice_recognition_init(void);

/**
 * 开始语音识别
 * @return 0成功，-1失败
 */
int voice_recognition_start(void);

/**
 * 停止语音识别
 * @return 0成功，-1失败
 */
int voice_recognition_stop(void);

/**
 * 处理语音识别（在主循环中调用）
 */
void voice_recognition_process(void);

/**
 * 获取识别结果
 * @param text 输出文本缓冲区
 * @param max_len 最大长度
 * @param confidence 置信度输出
 * @return 识别结果类型
 */
voice_result_t voice_recognition_get_result(char *text, int max_len, float *confidence);

/**
 * 检查是否检测到唤醒词
 * @return true检测到，false未检测到
 */
bool voice_recognition_is_wake_word_detected(void);

/**
 * 重置唤醒词状态
 */
void voice_recognition_reset_wake_word(void);

/**
 * 获取当前状态
 * @return 当前状态
 */
voice_recognition_state_t voice_recognition_get_state(void);

/**
 * 设置识别语言
 * @param language 语言代码（如"zh-CN", "en-US"）
 */
void voice_recognition_set_language(const char *language);

#endif // VOICE_RECOGNITION_H